# Copyright 2023 Huawei Technologies Co., Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ==============================================================================
"""init"""
from .tools import get_datapath_from_date, load_yaml_config, make_dir
from .logger import create_logger
from .visual import plt_global_field_data #, plt_wind_quiver
from .ice_visual import plt_metrics
from .callback import InferenceModule, LossNet, EvaluateCallBack, CustomWithLossCell
from .solver import GraphCastTrainer
from .utils import init_data_parallel, init_model, get_coe, get_logger, get_param_dict, GridMeshInfo
from .graphcastnet import GraphCastNet
from .lr_scheduler import get_warmup_cosine_annealing_lr
from .dataset import Dataset, FEATURE_DICT, SIZE_DICT, ECMWFIFS
from .forecast import WeatherForecast
from .pretrain import Trainer
from .net_with_clip import TrainOneStepCell


__all__ = ['create_logger', 'get_datapath_from_date', 'load_yaml_config', 'make_dir','plt_global_field_data', 'plt_metrics','plt_wind_quiver',
           'get_coe',
           'get_logger',
           'get_param_dict',
           'init_data_parallel',
           'init_model',
           'CustomWithLossCell',
           'EvaluateCallBack',
           'GraphCastTrainer',
           'InferenceModule',
           'LossNet',
           'GridMeshInfo',
           'GraphCastNet',
           'get_warmup_cosine_annealing_lr',
           'Dataset', 'FEATURE_DICE', 'SIZE_DICT', 'ECMWFIFS',
           'WeatherForecast', 'Trainer',
           'TrainOneStepCell'
           ]
